package graph

// NewEdge 返回一个新建边
func NewEdge(from, to *ConnectionPoint) *Edge {
	return &Edge{
		From: from,
		To:   to,
		Api:  &Api{},
	}
}

// Name 返回边的名称（具有唯一性）
func (e *Edge) GetName() string {
	return MergeName(e.From.Name, e.To.Name)
}

// Equal 返回两条边是否相同
func (e *Edge) Equal(edge *Edge) bool {
	return e.From.Equal(edge.From) && e.To.Equal(edge.From)
}

// SetApi 设置API
func (e *Edge) SetApi(api *Api) {
	e.Api = api
}

// Add 加API数量和调用次数
func (a *Api) Add(api *Api) {
	if a != nil {
		a.Num += api.Num
		a.CallCount += api.CallCount
	}
}

// Sub 减API数量和调用次数
func (a *Api) Sub(api *Api) {
	if a != nil {
		a.Num -= api.Num
		a.CallCount -= api.CallCount
	}
}
